#pragma once
#include "UnitCard.h"

class Swordsman : public UnitCard
{
public:
	static wstring localName;
	static list<wstring> localDescription;
	static SDL_Surface* localPicture;
	static SDL_Texture* localTexture;
	static SDL_Texture* localCheckerTexture;
	static SDL_Texture* localCheckerGrayTexture;
	Swordsman();
	virtual bool canSelect(int x, int y);
	virtual int activate(int x, int y);
	virtual int enemyActivate(int x, int y);
};

class Zombie : public UnitCard
{
public:
	static wstring localName;
	static list<wstring> localDescription;
	static SDL_Surface* localPicture;
	static SDL_Texture* localTexture;
	static SDL_Texture* localCheckerTexture;
	static SDL_Texture* localCheckerGrayTexture;
	Zombie();
	virtual bool canSelect(int x, int y);
	virtual int activate(int x, int y);
	virtual int enemyActivate(int x, int y);
};

class Treant : public UnitCard
{
public:
	static wstring localName;
	static list<wstring> localDescription;
	static SDL_Surface* localPicture;
	static SDL_Texture* localTexture;
	static SDL_Texture* localCheckerTexture;
	static SDL_Texture* localCheckerGrayTexture;
	Treant();
	virtual bool canSelect(int x, int y);
	virtual int activate(int x, int y);
	virtual int enemyActivate(int x, int y);
};

class Calvery : public UnitCard
{
public:
	static wstring localName;
	static list<wstring> localDescription;
	static SDL_Surface* localPicture;
	static SDL_Texture* localTexture;
	static SDL_Texture* localCheckerTexture;
	static SDL_Texture* localCheckerGrayTexture;
	Calvery();
	virtual bool canSelect(int x, int y);
	virtual int activate(int x, int y);
	virtual int enemyActivate(int x, int y);
};

class Spearman : public UnitCard
{
public:
	static wstring localName;
	static list<wstring> localDescription;
	static SDL_Surface* localPicture;
	static SDL_Texture* localTexture;
	static SDL_Texture* localCheckerTexture;
	static SDL_Texture* localCheckerGrayTexture;
	Spearman();
	virtual bool canSelect(int x, int y);
	virtual int activate(int x, int y);
	virtual int enemyActivate(int x, int y);
};

class ArmorKnight : public UnitCard
{
public:
	static wstring localName;
	static list<wstring> localDescription;
	static SDL_Surface* localPicture;
	static SDL_Texture* localTexture;
	static SDL_Texture* localCheckerTexture;
	static SDL_Texture* localCheckerGrayTexture;
	ArmorKnight();
	virtual bool canSelect(int x, int y);
	virtual int activate(int x, int y);
	virtual int enemyActivate(int x, int y);
};

class Archer : public UnitCard
{
public:
	static wstring localName;
	static list<wstring> localDescription;
	static SDL_Surface* localPicture;
	static SDL_Texture* localTexture;
	static SDL_Texture* localCheckerTexture;
	static SDL_Texture* localCheckerGrayTexture;
	Archer();
	virtual bool canSelect(int x, int y);
	virtual int activate(int x, int y);
	virtual int enemyActivate(int x, int y);
};

class Dragon : public UnitCard
{
public:
	static wstring localName;
	static list<wstring> localDescription;
	static SDL_Surface* localPicture;
	static SDL_Texture* localTexture;
	static SDL_Texture* localCheckerTexture;
	static SDL_Texture* localCheckerGrayTexture;
	Dragon();
	virtual bool canSelect(int x, int y);
	virtual int activate(int x, int y);
	virtual int enemyActivate(int x, int y);
};